ROADMAP
-------

Version 0.5: 'Graf Zeppelin' [DONE]
----------------------------
+ Rotations are not around the proper unit cube axis.
+ Add global 'set' command
+ 'set maxobjects'
+ Preprocessor Comments
+ Auto load examples to menu item entry.
+ Coloring 
+ GUI: Rotate about z axis
+ Solid Box object
+ Rule retirement:
  + (1) with substitution:  [ RULE r1 maxdepth 400 > r2 weigth 100 { ... } ]
  + (3) plain retirement [ RULE r1 maxdepth 400 weigth 100 { ... } ]
+ Version object
+ Iterated Rules
+ Scale with 3 parameters.
+ Progress dialog w/ cancel.
+ Fix multiple windows problems
+ 'Color' keyword (for absolute color)
+ 'Background' set command 
+ 'set seed'
+ Add 'Reset button' (for OpenGL view)
+ Create a build (resolve dependencies)

Version 0.7: 'Nostromo'
-----------------------
+ Full Screen
+ Tabbed interface
+ Custom Transformation matrix operator.
+ Syntax Highlighter
+ Parser should take {,} as delimiters
+ Screenshot
+ Context Menu in 3D GUI: 'Reset View', 'Save Screenshot', 'Full screen'.
+ Linux testing (should compile with minimum of error on Linux)

Version 0.8: 'Exonautica'
-----------------------------------
Main Focus: Template rendering
+ reproducibility -> control of random seed, 
+ GUI Seed
+ Add Template Renderer (user customizable text templats)
+ Splash screen.
 
Version 0.9: 'Kolberger Heide'
---------------
- save view as eisenscript code.
- Set initial viewport (create expression by right clicking mouse canvas)
? 'Zoom to fit'


Version 1.0: 'Potemkin'
-------------------------------
- Preferences (saving with QProperties) [For what?]
- Installers (for Windows at least - using InnoSetup)
- Packaging: Icons, Eula, file associations.
? Version object with check for updates on internet.
? Drag'n'Drop of EisenScript files.

Possible Version 1.x extensions:
_-------------------------------
? 'set minvolume'
? Tagging (e.g. [sphereresolution 3 25])
       - OpenGL settings (as tags): Perspective, Fog, Coloring, Res, 
? Ellipsoid object. (as of now spheres are always isotropic]
? Real transperancy (req. sorting) [Easier now we have defined bounding boxes]
? More complex primitives (tube, ...)
? Preprocessor '#include' statement
? Check for infinite retirement substitution cycles.
? Better Progress Bar (include updates for transformations loop, pause button?)
? Rule retirement: ? (2) with subst. and revive: [ RULE r1 maxdepth 400 >> r2 weigth 100 { ... } ]


Possible version 2.x extensions:
--------------------------------
- Textures w. alpha
- 2D Mode
- Parameterized rendering (movies)
  - Random parameters in rule definition
- Option for Synchronize random seed per generation. (Each expanded rule starts at the same seed).
? 4D geometry, creating animations by slicing through the 4th dimension.
? JavaScript usage of the rendering API (this would be like a lite version of Processing (In JS instead of Java)) 
? Geometry Distortion plugins (a la fish eye view)
? Built-in ray tracer.
? Live coding / drawing
  - Perhaps by assigning keyboard keys to rules? [but how?]
? Meta-programming via the [Tag Renderer]



